Enforcing Safety Properties Using Type Specialization

نویسنده

  • Peter Thiemann
چکیده

Type specialization can serve as a powerful tool in enforcing safety properties on foreign code. Using the specification of a monitoring interpreter, polyvariant type specialization can produce compiled code that is guaranteed to obey a specified safety policy. It propagates a security state at compile-time and generates code for each different security state. The resulting code contains virtually no run-time operations on the security state, at the price of some code duplication. A novel extension of type specialization by intersection types limits the amount of code duplication considerably, thus making the approach practical. A few years back, mobile code was merely an exciting research subject. Meanwhile, the situation has changed dramatically and mobile code is about to invade our everyday lives. Many applications load parts of their code —or even thirdparty extension modules— from the network and run it on the local computer. Web browsers are the most prominent of these applications, but many others (e.g., mobile agents) are gaining importance quickly. The advent of these applications and related incidents has brought an increasing awareness of the problems involved in executing foreign and potentially hostile programs. Clearly, it should be guaranteed that foreign code does not compromise the hosting computer, by crashing the computer (data integrity), by accessing/modifying data that it is not supposed to access (memory integrity) or —more generally— by using resources that it is not supposed to use. A generally accepted way of giving this guarantee is to execute the code in a sand box. Conceptually, a sand box performs monitored execution. It tracks the execution of foreign code and stops it if it attempts an illegal sequence of actions. A property that can be enforced in this way is called a safety property. Such sand box environments have been conceived and implemented with widely different degrees of sophistication. The obvious approach to such a sand box is to perform monitoring by interpreting the code. However, while the approach is highly flexible it involves a large interpretation overhead. Another approach, taken by the JDK [14], is to equip strategic functions in a library with calls to a security manager. A user-provided instantiation of the security manager is then responsible to keep track of the actions and to prevent unwanted actions. The latter approach is less flexible, but more efficient. Java solves the problem of data and memory integrity statically by subjecting all programs to a bytecode verification process [18]. D. Sands (Ed.): ESOP 2001, LNCS 2028, pp. 62–76, 2001. c © Springer-Verlag Berlin Heidelberg 2001 Enforcing Safety Properties Using Type Specialization 63

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

بررسی تاثیر اجرای برنامه تبادل اطلاعات خطر (HCS) بر آگاهی و عملکرد مدیریت ایمنی مواد شیمیایی خطرناک در پالایشگاه تهران

  Background and aims   The HCS standard includes listing of chemicals, labeling of chemical  containers, preparation of material safety data sheets, writing plan and employee training  programs. The aim of this study was to determine the influence of implemented program to enhance the knowledge and safety performance level of employees.   Methods   The knowledge level and unsafe act ratio were...

متن کامل

Chaos for a Fast, Secure, and Predictable Future

Violating a program’s semantics for fun and profit is a time honored hacker tradition. Compilers defend against such fiends by inserting run-time checks to enforce semantic safety properties. Safe language compilers insert type checks for down-casts, information flow compilers [11] add run-time checks to prevent information leakage, and tools like SAFECode [8], WIT [1], and DFI [6] insert run-t...

متن کامل

Type-Safe Compilation of Covariant Specialization: A Practical Case

Despite its lack of type safety, some typed object-oriented languages use covariant specialization for methods. In this work, we show how one may modify the semantics of languages that use covariant specialization in order to improve their type safety. We demonstrate our technique using O2, a strongly and statically typed object-oriented database programming language which uses covariant specia...

متن کامل

A Semantic Analysis of C++ Templates

Templates are a powerful but poorly understood feature of the C++ language. Their syntax resembles the parameterized classes of other languages (e.g., of Java). But because C++ supports template specialization, their semantics is quite different from that of parameterized classes. Template specialization provides a Turing-complete sub-language within C++ that executes at compile-time. Programme...

متن کامل

A Safety Kernel for Traac Light Control

The success of kernels for enforcing security has led to proposals to use kernels for enforcing safety. This paper presents a feasibility demonstration of one particular proposal for a safety kernel via the application of traac light control. The paper begins with the safety properties for traac light control and speciies a kernel that maintains the safety properties. An implementation sketch o...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2001